const userService = require('../service/user.service')
const {
  NAME_OR_PASSWORD_IS_REQUIRED,
  NAME_IS_ALREADY_EXISTS,
} = require('../config/error')
// 加密密码
const md5Password = require('../utils/md5-password')

const verifyUser = async (ctx, next) => {
  // 获取用户传递过来的数据
  // const user = ctx.request.body
  // console.log(user)
  // 判断用户是否存在
  // 验证用户名和密码为空
  const { name, password } = ctx.request.body
  if (!name || !password) {
    // ctx.body = {
    //   code: -1003,
    //   message: '用户名或者密码不能为空',
    // }
    // return
    return ctx.app.emit('error', NAME_OR_PASSWORD_IS_REQUIRED, ctx)
  }
  // 判断name是否在数据库中已经存在
  const users = await userService.findUserByName(name)
  if (users.length) {
    // ctx.body = {
    //   code: -1002,
    //   message: '用户名已经被占用,不能使用',
    // }
    // return
    return ctx.app.emit('error', NAME_IS_ALREADY_EXISTS, ctx)
  }

  await next()
}
const handlePassword = async (ctx, next) => {
  const { password } = ctx.request.body
  // console.log(password)
  // 存储加密之后的密码
  ctx.request.body.password = md5Password(password)

  await next()
}
module.exports = { verifyUser, handlePassword }
